Chonky ATR Levels 2.0Show ATR based high/low projections.
Choose a custom ATR calculation in the indicator's settings.
The default is a 20day RMA based ATR.
----------How projections are calculated----------
To project the ATR High, the ATR value is added to the low of the current candle that matches the ATR's timeframe.
To project the ATR Low, the ATR value is subtracted from the high of the current candle that matches the ATR's timeframe.
Example:
If a 20day RMA ATR is used:
- the ATR High will be the current day's low + the ATR value.
- the ATR Low will be the current day's high - the ATR value.
*However*, if the price action exceeds either ATR projection, the opposite ATR level will be fixed to the extreme of the period.
See the AUDUSD screenshot above for an example.
The ATR Low was exceeded, so the ATR High projection is capped at the high of day.
If the ATR High is exceeded, the ATR Low would be capped at the low of day.
Search in scripts for "high low"
Liquidity Heatmap SwiftEdgeDescription
Liquidity Heatmap with Buy/Sell Side (Blue/Red) is a technical analysis tool designed to help traders identify potential liquidity zones in the market by combining swing high/low detection with volume analysis, visualized as a heatmap overlay on the chart. This script highlights areas where significant buying or selling pressure may exist, often acting as support or resistance levels, and provides a clear visual representation of these zones using color-coded heatmap boxes and labeled bubbles.
What It Does
The script identifies key price levels (swing highs and lows) where liquidity is likely to be concentrated, such as stop-loss clusters or pending orders. These levels are then grouped into a heatmap, with blue zones representing potential buy-side liquidity (below the current price) and red zones indicating sell-side liquidity (above the current price). Each zone is marked with a bubble showing the estimated liquidity amount, derived from volume data, to help traders gauge the strength of the level.
How It Works
The script combines three main components to create a comprehensive liquidity visualization:
Swing Highs and Lows Detection:
The script uses the ta.pivothigh and ta.pivotlow functions to identify swing highs and lows over a user-defined lookback period (Swing Length). These levels often represent areas where price has reversed, indicating potential liquidity zones where stop-losses or pending orders may be placed.
Volume Analysis:
Volume data at each swing high/low is captured and averaged over a specified period (Volume Average Length). This volume is then scaled using a multiplier (Volume Multiplier for Liquidity) to estimate the liquidity amount at each level, displayed in thousands (e.g., "10K") on the chart via labeled bubbles.
Heatmap Visualization:
The identified levels are grouped into price bins to form a heatmap. The price range is divided into a user-defined number of bins (Number of Heatmap Bins), and each bin is drawn as a colored box (blue for buy-side, red for sell-side). The transparency of the heatmap boxes can be adjusted (Heatmap Transparency) to ensure they do not obscure the price action.
Why Combine These Components?
The combination of swing highs/lows, volume analysis, and a heatmap provides a powerful way to visualize liquidity in the market. Swing highs and lows are natural points where liquidity tends to accumulate, as they often coincide with areas where traders place stop-losses or pending orders. By incorporating volume data, the script quantifies the potential strength of these levels, giving traders insight into the magnitude of liquidity present. The heatmap visualization then aggregates these levels into a clear, color-coded overlay, making it easy to see where buy-side and sell-side liquidity is concentrated without cluttering the chart.
This mashup is particularly useful because it bridges price action (swing levels), market activity (volume), and visual clarity (heatmap), offering a holistic view of potential support and resistance zones that might influence price movements.
How to Use It
Add the Indicator to Your Chart:
Apply the script to your chart by adding it from the Pine Script library. It will overlay directly on your price chart.
Interpret the Heatmap:
Blue Zones (Buy-Side Liquidity): These appear below the current price and indicate levels where buying pressure or stop-losses from short positions may be located.
Red Zones (Sell-Side Liquidity): These appear above the current price and indicate levels where selling pressure or stop-losses from long positions may be located.
The intensity of the color is controlled by the Heatmap Transparency setting—lower values make the zones more opaque, while higher values make them more transparent.
Analyze the Bubbles:
Each liquidity zone is marked with a bubble showing the estimated liquidity amount in thousands (e.g., "10K"). The size of the bubble is scaled by the Bubble Size Multiplier, with larger bubbles indicating higher liquidity.
Adjust Settings for Your Needs:
Liquidity Settings:
Swing Length: Controls the lookback period for detecting swing highs and lows. A smaller value (e.g., 10) is better for shorter timeframes like 1-minute charts, while a larger value (e.g., 50) suits higher timeframes.
Liquidity Threshold: Defines how close two levels must be to be considered the same, preventing duplicate zones.
Volume Average Length: Sets the period for averaging volume data at swing points.
Volume Multiplier for Liquidity: Scales the volume to estimate liquidity amounts shown in the bubbles.
Lookback Period (Hours): Limits how far back the script looks for liquidity zones.
Use Price Window Filter: If enabled, only shows zones within a price range defined by Liquidity Window (Points per Side).
Heatmap Settings:
Number of Heatmap Bins: Determines how many price bins the heatmap is divided into. More bins create a finer resolution but may clutter the chart.
Heatmap Bin Height (Points): Sets the vertical height of each heatmap box in price points.
Heatmap Transparency: Adjusts the transparency of the heatmap boxes (0 = fully opaque, 100 = fully transparent).
Display Settings:
Bubble Size Multiplier: Scales the size of the bubbles showing liquidity amounts.
Trading Application:
Use the heatmap to identify potential support (blue zones) and resistance (red zones) levels where price may react.
Pay attention to zones with larger bubbles, as they indicate higher liquidity and may have a stronger impact on price.
Combine with other analysis tools (e.g., trendlines, indicators) to confirm trade setups.
What Makes It Original?
This script stands out by integrating swing high/low detection with volume-based liquidity estimation and a heatmap visualization in a single tool. Unlike traditional support/resistance indicators that only plot static lines, this script dynamically aggregates liquidity zones into a heatmap, making it easier to see clusters of potential buying or selling pressure. The addition of volume-derived liquidity amounts in labeled bubbles provides a unique quantitative measure of each zone's strength, helping traders prioritize key levels. The color-coded buy/sell distinction further enhances its utility by visually separating zones based on their likely market impact.
Example Use Case
On a 1-minute chart of EUR/USD, you might set Swing Length to 10 to capture short-term pivots, Lookback Period (Hours) to 4 to focus on recent data, and Liquidity Window to 200 points (20 pips) to show only nearby zones. The heatmap will then display blue zones below the current price where buy-side liquidity may act as support, and red zones above where sell-side liquidity may act as resistance. A bubble showing "50K" at a blue zone indicates significant buy-side liquidity, suggesting a potential bounce if the price approaches that level.
ICT Order Blocks v2 (Debug)Josh has a very large PP xD
Understanding Order Blocks (OBs) - The ICT Perspective
This document delves into the concept of Order Blocks (OBs) from the perspective of the ICT methodology. It outlines what OBs are, their significance in trading, and how the "ICT Order Blocks v2 (Refined)" indicator functions to identify and visualize these critical price levels. By understanding OBs, traders can better navigate market movements and make informed decisions based on institutional trading behavior.
What is an Order Block (OB)?
Within ICT methodology, an Order Block represents a specific price candle where significant buying or selling interest from institutions (Smart Money) is believed to have occurred. They are potential areas where price might return and react.
Bullish Order Block: Typically the last down-closing candle before a strong, impulsive upward move (displacement). It suggests institutions may have absorbed selling pressure and initiated long positions here.
Bearish Order Block: Typically the last up-closing candle before a strong, impulsive downward move (displacement). It suggests institutions may have distributed long positions or initiated short positions here.
Why are OBs Significant (ICT View)?
Institutional Footprint: They mark potential zones of large order execution.
Support/Resistance: Unmitigated OBs can act as sensitive price levels where reactions are expected. Bullish OBs may provide support; Bearish OBs may provide resistance.
Origin of Moves: They often mark the origin point of significant price swings.
Liquidity Engineering: Institutions might drive price back to OBs to mitigate earlier positions or to engineer liquidity before continuing a move.
Common Refinements
ICT often emphasizes higher probability OBs that are associated with:
Displacement: The move away from the OB is sharp and decisive.
Fair Value Gaps (FVGs): An FVG forming immediately after the OB strengthens its validity.
OB Mitigation: This refers to price returning to the level of the Order Block after its formation. Price might react at the edge (proximal line) or the 50% level (mean threshold) of the OB. An OB is often considered fully mitigated or invalidated if price trades decisively through its entire range, especially with a candle body closing beyond it.
How the "ICT Order Blocks v2 (Refined)" Indicator Works
This indicator automates the detection and visualization of the most recent unmitigated Order Block of each type (Bullish/Bearish), incorporating optional filters.
Detection:
It looks at the relationship between the candle two bars ago ( ), the previous candle ( ), and potentially the current candle ( ).
Bullish OB: Identifies if candle was a down-close (close < open ) AND candle broke above the high of candle (high > high ).
Bearish OB: Identifies if candle was an up-close (close > open ) AND candle broke below the low of candle (low < low ).
Accuracy Filters (Optional Inputs):
These filters help identify potentially higher-probability OBs:
Require Fair Value Gap (FVG)?: If enabled, the indicator checks if an FVG formed immediately after the OB candle ( ). Specifically, it looks for a gap between candle and candle (low > high for Bullish OB confirmation, high < low for Bearish).
Require Strong Close Breakout?: If enabled, it requires the breakout candle ( ) to close beyond the range of the OB candle ( ). (close > high for Bullish, close < low for Bearish). This suggests stronger confirmation.
Storing the Most Recent OB:
When an OB is detected and passes any enabled filters, its details (high, low, formation bar index) are stored. Crucially, this indicator only tracks the single most recent valid unmitigated OB of each type (one Bullish, one Bearish) using var variables. If a newer valid OB forms, it replaces the previously stored one.
Drawing Boxes:
If a valid Bullish OB is being tracked (and Show Bullish OBs is enabled), it draws a box (box.new) using the high and low of the identified OB candle ( ). The same process applies to Bearish OBs (Show Bearish OBs enabled). The boxes automatically extend to the right (extend.right) and their right edge is updated on each new bar (box.set_right) until they are mitigated. Labels ("Bull OB" / "Bear OB") are displayed inside the boxes.
Mitigation & Box Deletion:
The indicator checks if the current closing price (close ) has moved entirely beyond the range of the tracked OB.
Mitigation Rule Used: A Bullish OB is considered mitigated if close < bull_ob_low. A Bearish OB is considered mitigated if close > bear_ob_high. Once an OB is marked as mitigated, the indicator stops tracking it and its corresponding box is automatically deleted (box.delete) from the chart.
This indicator provides a dynamic visualization of the most recent, potentially significant Order Blocks that meet the specified criteria, helping traders identify key areas of interest based on ICT principles.
Pivot S/R with Volatility Filter## *📌 Indicator Purpose*
This indicator identifies *key support/resistance levels* using pivot points while also:
✅ Detecting *high-volume liquidity traps* (stop hunts)
✅ Filtering insignificant pivots via *ATR (Average True Range) volatility*
✅ Tracking *test counts and breakouts* to measure level strength
---
## *⚙ SETTINGS – Detailed Breakdown*
### *1️⃣ ◆ General Settings*
#### *🔹 Pivot Length*
- *Purpose:* Determines how many bars to analyze when identifying pivots.
- *Usage:*
- *Low values (5-20):* More pivots, better for scalping.
- *High values (50-200):* Fewer but stronger levels for swing trading.
- *Example:*
- Pivot Length = 50 → Only the most significant highs/lows over 50 bars are marked.
#### *🔹 Test Threshold (Max Test Count)*
- *Purpose:* Sets how many times a level can be tested before being invalidated.
- *Example:*
- Test Threshold = 3 → After 3 tests, the level is ignored (likely to break).
#### *🔹 Zone Range*
- *Purpose:* Creates a price buffer around pivots (±0.001 by default).
- *Why?* Markets often respect "zones" rather than exact prices.
---
### *2️⃣ ◆ Volatility Filter (ATR)*
#### *🔹 ATR Period*
- *Purpose:* Smoothing period for Average True Range calculation.
- *Default:* 14 (standard for volatility measurement).
#### *🔹 ATR Multiplier (Min Move)*
- *Purpose:* Requires pivots to show *meaningful price movement*.
- *Formula:* Min Move = ATR × Multiplier
- *Example:*
- ATR = 10 pips, Multiplier = 1.5 → Only pivots with *15+ pip swings* are valid.
#### *🔹 Show ATR Filter Info*
- Displays current ATR and minimum move requirements on the chart.
---
### *3️⃣ ◆ Volume Analysis*
#### *🔹 Volume Change Threshold (%)*
- *Purpose:* Filters for *unusual volume spikes* (institutional activity).
- *Example:*
- Threshold = 1.2 → Requires *120% of average volume* to confirm signals.
#### *🔹 Volume MA Period*
- *Purpose:* Lookback period for "normal" volume calculation.
---
### *4️⃣ ◆ Wick Analysis*
#### *🔹 Wick Length Threshold (Ratio)*
- *Purpose:* Ensures rejection candles have *long wicks* (strong reversals).
- *Formula:* Wick Ratio = (Upper Wick + Lower Wick) / Candle Range
- *Example:*
- Threshold = 0.6 → 60% of the candle must be wicks.
#### *🔹 Min Wick Size (ATR %)*
- *Purpose:* Filters out small wicks in volatile markets.
- *Example:*
- ATR = 20 pips, MinWickSize = 1% → Wicks under *0.2 pips* are ignored.
---
### *5️⃣ ◆ Display Settings*
- *Show Zones:* Toggles support/resistance shaded areas.
- *Show Traps:* Highlights liquidity traps (▲/▼ symbols).
- *Show Tests:* Displays how many times levels were tested.
- *Zone Transparency:* Adjusts opacity of zones.
---
## *🎯 Practical Use Cases*
### *1️⃣ Liquidity Trap Detection*
- *Scenario:* Price spikes *above resistance* then reverses sharply.
- *Requirements:*
- Long wick (Wick Ratio > 0.6)
- High volume (Volume > Threshold)
- *Outcome:* *Short Trap* signal (▼) appears.
### *2️⃣ Strong Support Level*
- *Scenario:* Price bounces *3 times* from the same level.
- *Indicator Action:*
- Labels the level with test count (3/5 = 3 tests out of max 5).
- Turns *red* if broken (Break Count > 0).
Deep Dive: How This Indicator Works*
This indicator combines *four professional trading concepts* into one powerful tool:
1. *Classic Pivot Point Theory*
- Identifies swing highs/lows where price previously reversed
- Unlike basic pivot indicators, ours uses *confirmed pivots only* (filtered by ATR)
2. *Volume-Weighted Validation*
- Requires unusual trading volume to confirm levels
- Filters out "phantom" levels with low participation
3. *ATR Volatility Filtering*
- Eliminates insignificant price swings in choppy markets
- Ensures only meaningful levels are plotted
4. *Liquidity Trap Detection*
- Spots institutional stop hunts where markets fake out traders
- Uses wick analysis + volume spikes for high-probability signals
---
Deep Dive: How This Indicator Works*
This indicator combines *four professional trading concepts* into one powerful tool:
1. *Classic Pivot Point Theory*
- Identifies swing highs/lows where price previously reversed
- Unlike basic pivot indicators, ours uses *confirmed pivots only* (filtered by ATR)
2. *Volume-Weighted Validation*
- Requires unusual trading volume to confirm levels
- Filters out "phantom" levels with low participation
3. *ATR Volatility Filtering*
- Eliminates insignificant price swings in choppy markets
- Ensures only meaningful levels are plotted
4. *Liquidity Trap Detection*
- Spots institutional stop hunts where markets fake out traders
- Uses wick analysis + volume spikes for high-probability signals
---
## *📊 Parameter Encyclopedia (Expanded)*
### *1️⃣ Pivot Engine Settings*
#### *Pivot Length (50)*
- *What It Does:*
Determines how many bars to analyze when searching for swing highs/lows.
- *Professional Adjustment Guide:*
| Trading Style | Recommended Value | Why? |
|--------------|------------------|------|
| Scalping | 10-20 | Captures short-term levels |
| Day Trading | 30-50 | Balanced approach |
| Swing Trading| 50-200 | Focuses on major levels |
- *Real Market Example:*
On NASDAQ 5-minute chart:
- Length=20: Identifies levels holding for ~2 hours
- Length=50: Finds levels respected for entire trading day
#### *Test Threshold (5)*
- *Advanced Insight:*
Institutions often test levels 3-5 times before breaking them. This setting mimics the "probe and push" strategy used by smart money.
- *Psychology Behind It:*
Retail traders typically give up after 2-3 tests, while institutions keep testing until stops are run.
---
### *2️⃣ Volatility Filter System*
#### *ATR Multiplier (1.0)*
- *Professional Formula:*
Minimum Valid Swing = ATR(14) × Multiplier
- *Market-Specific Recommendations:*
| Market Type | Optimal Multiplier |
|------------------|--------------------|
| Forex Majors | 0.8-1.2 |
| Crypto (BTC/ETH) | 1.5-2.5 |
| SP500 Stocks | 1.0-1.5 |
- *Why It Matters:*
In EUR/USD (ATR=10 pips):
- Multiplier=1.0 → Requires 10 pip swings
- Multiplier=1.5 → Requires 15 pip swings (fewer but higher quality levels)
---
### *3️⃣ Volume Confirmation System*
#### *Volume Threshold (1.2)*
- *Institutional Benchmark:*
- 1.2x = Moderate institutional interest
- 1.5x+ = Strong smart money activity
- *Volume Spike Case Study:*
*Before Apple Earnings:*
- Normal volume: 2M shares
- Spike threshold (1.2): 2.4M shares
- Actual volume: 3.1M shares → STRONG confirmation
---
### *4️⃣ Liquidity Trap Detection*
#### *Wick Analysis System*
- *Two-Filter Verification:*
1. *Wick Ratio (0.6):*
- Ensures majority of candle shows rejection
- Formula: (UpperWick + LowerWick) / Total Range > 0.6
2. *Min Wick Size (1% ATR):*
- Prevents false signals in flat markets
- Example: ATR=20 pips → Min wick=0.2 pips
- *Trap Identification Flowchart:*
Price Enters Zone →
Spikes Beyond Level →
Shows Long Wick →
Volume > Threshold →
TRAP CONFIRMED
---
## *💡 Master-Level Usage Techniques*
### *Institutional Order Flow Analysis*
1. *Step 1:* Identify pivot levels with ≥3 tests
2. *Step 2:* Watch for volume contraction near levels
3. *Step 3:* Enter when trap signal appears with:
- Wick > 2×ATR
- Volume > 1.5× average
### *Multi-Timeframe Confirmation*
1. *Higher TF:* Find weekly/monthly pivots
2. *Lower TF:* Use this indicator for precise entries
3. *Example:*
- Weekly pivot at $180
- 4H shows liquidity trap → High-probability reversal
---
## *⚠ Critical Mistakes to Avoid*
1. *Using Default Settings Everywhere*
- Crude oil needs higher ATR multiplier than bonds
2. *Ignoring Trap Context*
- Traps work best at:
- All-time highs/lows
- Major psychological numbers (00/50 levels)
3. *Overlooking Cumulative Volume*
- Check if volume is building over multiple tests
SessionRangeLevels_v0.1SessionRangeLevels_v0.1
Overview:
SessionRangeLevels_v0.1 is a customizable Pine Script (v6) indicator designed to plot key price levels based on a user-defined trading session. It identifies the high and low of the session and calculates intermediate levels (75%, 50% "EQ", and 25%) within that range. These levels are projected forward as horizontal lines with accompanying labels, providing traders with dynamic support and resistance zones. The indicator supports extensive customization for session timing, time zones, line styles, colors, and more.
Key Features:
Session-Based Range Detection: Tracks the high and low prices during a specified session (e.g., 0600-0900) and updates them dynamically as the session progresses.
Customizable Levels: Displays High, 75%, EQ (50%), 25%, and Low levels, each with independent toggle options, styles (Solid, Dashed, Dotted), colors, and widths.
Session Anchor: Optional vertical line marking the session start, with customizable style, color, and width.
Projection Offset: Extends level lines forward by a user-defined number of bars (default: 24) for future price reference.
Labels: Toggleable labels for each level (e.g., "High," "75%," "EQ") with adjustable size (Tiny, Small, Normal, Large).
Time Zone Support: Aligns session timing to a selected time zone (e.g., America/New_York, UTC, Asia/Tokyo, etc.).
Alert Conditions: Triggers alerts when the price crosses any of the plotted levels (High, 75%, EQ, 25%, Low).
Inputs:
Session Time (HHMM-HHMM): Define the session range (e.g., "0600-0900" for 6:00 AM to 9:00 AM).
Time Zone: Choose from options like UTC, America/New_York, Europe/London, etc.
Anchor Settings: Toggle the session start line, adjust its style (default: Dotted), color (default: Black), and width (default: 1).
Level Settings:
High (Solid, Black, Width 2)
75% (Dotted, Blue, Width 1)
EQ/50% (Dotted, Orange, Width 1)
25% (Dotted, Blue, Width 1)
Low (Solid, Black, Width 2)
Each level includes options to show/hide, set style, color, width, and label visibility.
Projection Offset: Number of bars to extend lines (default: 24).
Label Size: Set label size (default: Small).
How It Works:
The indicator detects the start and end of the user-defined session based on the specified time and time zone.
During the session, it tracks the highest high and lowest low, updating the levels in real-time.
At the session start, it plots the High, Low, and intermediate levels (75%, 50%, 25%), projecting them forward.
Lines and labels dynamically adjust as new highs or lows occur within the session.
Alerts notify users when the price crosses any active level.
Usage:
Ideal for traders who focus on session-based strategies (e.g., London or New York open). Use it to identify key price zones, monitor breakouts, or set targets. Customize the appearance to suit your chart preferences and enable alerts for real-time trading signals.
Notes:
Ensure your chart’s timeframe aligns with your session duration for optimal results (e.g., 1-minute or 5-minute charts for short sessions).
The indicator overlays directly on the price chart for easy integration with other tools.
real_time_candlesIntroduction
The Real-Time Candles Library provides comprehensive tools for creating, manipulating, and visualizing custom timeframe candles in Pine Script. Unlike standard indicators that only update at bar close, this library enables real-time visualization of price action and indicators within the current bar, offering traders unprecedented insight into market dynamics as they unfold.
This library addresses a fundamental limitation in traditional technical analysis: the inability to see how indicators evolve between bar closes. By implementing sophisticated real-time data processing techniques, traders can now observe indicator movements, divergences, and trend changes as they develop, potentially identifying trading opportunities much earlier than with conventional approaches.
Key Features
The library supports two primary candle generation approaches:
Chart-Time Candles: Generate real-time OHLC data for any variable (like RSI, MACD, etc.) while maintaining synchronization with chart bars.
Custom Timeframe (CTF) Candles: Create candles with custom time intervals or tick counts completely independent of the chart's native timeframe.
Both approaches support traditional candlestick and Heikin-Ashi visualization styles, with options for moving average overlays to smooth the data.
Configuration Requirements
For optimal performance with this library:
Set max_bars_back = 5000 in your script settings
When using CTF drawing functions, set max_lines_count = 500, max_boxes_count = 500, and max_labels_count = 500
These settings ensure that you will be able to draw correctly and will avoid any runtime errors.
Usage Examples
Basic Chart-Time Candle Visualization
// Create real-time candles for RSI
float rsi = ta.rsi(close, 14)
Candle rsi_candle = candle_series(rsi, CandleType.candlestick)
// Plot the candles using Pine's built-in function
plotcandle(rsi_candle.Open, rsi_candle.High, rsi_candle.Low, rsi_candle.Close,
"RSI Candles", rsi_candle.candle_color, rsi_candle.candle_color)
Multiple Access Patterns
The library provides three ways to access candle data, accommodating different programming styles:
// 1. Array-based access for collection operations
Candle candles = candle_array(source)
// 2. Object-oriented access for single entity manipulation
Candle candle = candle_series(source)
float value = candle.source(Source.HLC3)
// 3. Tuple-based access for functional programming styles
= candle_tuple(source)
Custom Timeframe Examples
// Create 20-second candles with EMA overlay
plot_ctf_candles(
source = close,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 20,
timezone = -5,
tied_open = true,
ema_period = 9,
enable_ema = true
)
// Create tick-based candles (new candle every 15 ticks)
plot_ctf_tick_candles(
source = close,
candle_type = CandleType.heikin_ashi,
number_of_ticks = 15,
timezone = -5,
tied_open = true
)
Advanced Usage with Custom Visualization
// Get custom timeframe candles without automatic plotting
CandleCTF my_candles = ctf_candles_array(
source = close,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 30
)
// Apply custom logic to the candles
float ema_values = my_candles.ctf_ema(14)
// Draw candles and EMA using time-based coordinates
my_candles.draw_ctf_candles_time()
ema_values.draw_ctf_line_time(line_color = #FF6D00)
Library Components
Data Types
Candle: Structure representing chart-time candles with OHLC, polarity, and visualization properties
CandleCTF: Extended candle structure with additional time metadata for custom timeframes
TickData: Structure for individual price updates with time deltas
Enumerations
CandleType: Specifies visualization style (candlestick or Heikin-Ashi)
Source: Defines price components for calculations (Open, High, Low, Close, HL2, etc.)
SampleType: Sets sampling method (Time-based or Tick-based)
Core Functions
get_tick(): Captures current price as a tick data point
candle_array(): Creates an array of candles from price updates
candle_series(): Provides a single candle based on latest data
candle_tuple(): Returns OHLC values as a tuple
ctf_candles_array(): Creates custom timeframe candles without rendering
Visualization Functions
source(): Extracts specific price components from candles
candle_ctf_to_float(): Converts candle data to float arrays
ctf_ema(): Calculates exponential moving averages for candle arrays
draw_ctf_candles_time(): Renders candles using time coordinates
draw_ctf_candles_index(): Renders candles using bar index coordinates
draw_ctf_line_time(): Renders lines using time coordinates
draw_ctf_line_index(): Renders lines using bar index coordinates
Technical Implementation Notes
This library leverages Pine Script's varip variables for state management, creating a sophisticated real-time data processing system. The implementation includes:
Efficient tick capturing: Samples price at every execution, maintaining temporal tracking with time deltas
Smart state management: Uses a hybrid approach with mutable updates at index 0 and historical preservation at index 1+
Temporal synchronization: Manages two time domains (chart time and custom timeframe)
The tooltip implementation provides crucial temporal context for custom timeframe visualizations, allowing users to understand exactly when each candle formed regardless of chart timeframe.
Limitations
Custom timeframe candles cannot be backtested due to Pine Script's limitations with historical tick data
Real-time visualization is only available during live chart updates
Maximum history is constrained by Pine Script's array size limits
Applications
Indicator visualization: See how RSI, MACD, or other indicators evolve in real-time
Volume analysis: Create custom volume profiles independent of chart timeframe
Scalping strategies: Identify short-term patterns with precisely defined time windows
Volatility measurement: Track price movement characteristics within bars
Custom signal generation: Create entry/exit signals based on custom timeframe patterns
Conclusion
The Real-Time Candles Library bridges the gap between traditional technical analysis (based on discrete OHLC bars) and the continuous nature of market movement. By making indicators more responsive to real-time price action, it gives traders a significant edge in timing and decision-making, particularly in fast-moving markets where waiting for bar close could mean missing important opportunities.
Whether you're building custom indicators, researching price patterns, or developing trading strategies, this library provides the foundation for sophisticated real-time analysis in Pine Script.
Implementation Details & Advanced Guide
Core Implementation Concepts
The Real-Time Candles Library implements a sophisticated event-driven architecture within Pine Script's constraints. At its heart, the library creates what's essentially a reactive programming framework handling continuous data streams.
Tick Processing System
The foundation of the library is the get_tick() function, which captures price updates as they occur:
export get_tick(series float source = close, series float na_replace = na)=>
varip float price = na
varip int series_index = -1
varip int old_time = 0
varip int new_time = na
varip float time_delta = 0
// ...
This function:
Samples the current price
Calculates time elapsed since last update
Maintains a sequential index to track updates
The resulting TickData structure serves as the fundamental building block for all candle generation.
State Management Architecture
The library employs a sophisticated state management system using varip variables, which persist across executions within the same bar. This creates a hybrid programming paradigm that's different from standard Pine Script's bar-by-bar model.
For chart-time candles, the core state transition logic is:
// Real-time update of current candle
candle_data := Candle.new(Open, High, Low, Close, polarity, series_index, candle_color)
candles.set(0, candle_data)
// When a new bar starts, preserve the previous candle
if clear_state
candles.insert(1, candle_data)
price.clear()
// Reset state for new candle
Open := Close
price.push(Open)
series_index += 1
This pattern of updating index 0 in real-time while inserting completed candles at index 1 creates an elegant solution for maintaining both current state and historical data.
Custom Timeframe Implementation
The custom timeframe system manages its own time boundaries independent of chart bars:
bool clear_state = switch settings.sample_type
SampleType.Ticks => cumulative_series_idx >= settings.number_of_ticks
SampleType.Time => cumulative_time_delta >= settings.number_of_seconds
This dual-clock system synchronizes two time domains:
Pine's execution clock (bar-by-bar processing)
The custom timeframe clock (tick or time-based)
The library carefully handles temporal discontinuities, ensuring candle formation remains accurate despite irregular tick arrival or market gaps.
Advanced Usage Techniques
1. Creating Custom Indicators with Real-Time Candles
To develop indicators that process real-time data within the current bar:
// Get real-time candles for your data
Candle rsi_candles = candle_array(ta.rsi(close, 14))
// Calculate indicator values based on candle properties
float signal = ta.ema(rsi_candles.first().source(Source.Close), 9)
// Detect patterns that occur within the bar
bool divergence = close > close and rsi_candles.first().Close < rsi_candles.get(1).Close
2. Working with Custom Timeframes and Plotting
For maximum flexibility when visualizing custom timeframe data:
// Create custom timeframe candles
CandleCTF volume_candles = ctf_candles_array(
source = volume,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 60
)
// Convert specific candle properties to float arrays
float volume_closes = volume_candles.candle_ctf_to_float(Source.Close)
// Calculate derived values
float volume_ema = volume_candles.ctf_ema(14)
// Create custom visualization
volume_candles.draw_ctf_candles_time()
volume_ema.draw_ctf_line_time(line_color = color.orange)
3. Creating Hybrid Timeframe Analysis
One powerful application is comparing indicators across multiple timeframes:
// Standard chart timeframe RSI
float chart_rsi = ta.rsi(close, 14)
// Custom 5-second timeframe RSI
CandleCTF ctf_candles = ctf_candles_array(
source = close,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 5
)
float fast_rsi_array = ctf_candles.candle_ctf_to_float(Source.Close)
float fast_rsi = fast_rsi_array.first()
// Generate signals based on divergence between timeframes
bool entry_signal = chart_rsi < 30 and fast_rsi > fast_rsi_array.get(1)
Final Notes
This library represents an advanced implementation of real-time data processing within Pine Script's constraints. By creating a reactive programming framework for handling continuous data streams, it enables sophisticated analysis typically only available in dedicated trading platforms.
The design principles employed—including state management, temporal processing, and object-oriented architecture—can serve as patterns for other advanced Pine Script development beyond this specific application.
------------------------
Library "real_time_candles"
A comprehensive library for creating real-time candles with customizable timeframes and sampling methods.
Supports both chart-time and custom-time candles with options for candlestick and Heikin-Ashi visualization.
Allows for tick-based or time-based sampling with moving average overlay capabilities.
get_tick(source, na_replace)
Captures the current price as a tick data point
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
na_replace (float) : Optional - Value to use when source is na
Returns: TickData structure containing price, time since last update, and sequential index
candle_array(source, candle_type, sync_start, bullish_color, bearish_color)
Creates an array of candles based on price updates
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
candle_type (simple CandleType) : Optional - Type of candle chart to create (candlestick or Heikin-Ashi)
sync_start (simple bool) : Optional - Whether to synchronize with the start of a new bar
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: Array of Candle objects ordered with most recent at index 0
candle_series(source, candle_type, wait_for_sync, bullish_color, bearish_color)
Provides a single candle based on the latest price data
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
candle_type (simple CandleType) : Optional - Type of candle chart to create (candlestick or Heikin-Ashi)
wait_for_sync (simple bool) : Optional - Whether to wait for a new bar before starting
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: A single Candle object representing the current state
candle_tuple(source, candle_type, wait_for_sync, bullish_color, bearish_color)
Provides candle data as a tuple of OHLC values
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
candle_type (simple CandleType) : Optional - Type of candle chart to create (candlestick or Heikin-Ashi)
wait_for_sync (simple bool) : Optional - Whether to wait for a new bar before starting
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: Tuple representing current candle values
method source(self, source, na_replace)
Extracts a specific price component from a Candle
Namespace types: Candle
Parameters:
self (Candle)
source (series Source) : Type of price data to extract (Open, High, Low, Close, or composite values)
na_replace (float) : Optional - Value to use when source value is na
Returns: The requested price value from the candle
method source(self, source)
Extracts a specific price component from a CandleCTF
Namespace types: CandleCTF
Parameters:
self (CandleCTF)
source (simple Source) : Type of price data to extract (Open, High, Low, Close, or composite values)
Returns: The requested price value from the candle as a varip
method candle_ctf_to_float(self, source)
Converts a specific price component from each CandleCTF to a float array
Namespace types: array
Parameters:
self (array)
source (simple Source) : Optional - Type of price data to extract (defaults to Close)
Returns: Array of float values extracted from the candles, ordered with most recent at index 0
method ctf_ema(self, ema_period)
Calculates an Exponential Moving Average for a CandleCTF array
Namespace types: array
Parameters:
self (array)
ema_period (simple float) : Period for the EMA calculation
Returns: Array of float values representing the EMA of the candle data, ordered with most recent at index 0
method draw_ctf_candles_time(self, sample_type, number_of_ticks, number_of_seconds, timezone)
Renders custom timeframe candles using bar time coordinates
Namespace types: array
Parameters:
self (array)
sample_type (simple SampleType) : Optional - Method for sampling data (Time or Ticks), used for tooltips
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks), used for tooltips
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time), used for tooltips
timezone (simple int) : Optional - Timezone offset from UTC (-12 to +12), used for tooltips
Returns: void - Renders candles on the chart using time-based x-coordinates
method draw_ctf_candles_index(self, sample_type, number_of_ticks, number_of_seconds, timezone)
Renders custom timeframe candles using bar index coordinates
Namespace types: array
Parameters:
self (array)
sample_type (simple SampleType) : Optional - Method for sampling data (Time or Ticks), used for tooltips
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks), used for tooltips
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time), used for tooltips
timezone (simple int) : Optional - Timezone offset from UTC (-12 to +12), used for tooltips
Returns: void - Renders candles on the chart using index-based x-coordinates
method draw_ctf_line_time(self, source, line_size, line_color)
Renders a line representing a price component from the candles using time coordinates
Namespace types: array
Parameters:
self (array)
source (simple Source) : Optional - Type of price data to extract (defaults to Close)
line_size (simple int) : Optional - Width of the line
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using time-based x-coordinates
method draw_ctf_line_time(self, line_size, line_color)
Renders a line from a varip float array using time coordinates
Namespace types: array
Parameters:
self (array)
line_size (simple int) : Optional - Width of the line, defaults to 2
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using time-based x-coordinates
method draw_ctf_line_index(self, source, line_size, line_color)
Renders a line representing a price component from the candles using index coordinates
Namespace types: array
Parameters:
self (array)
source (simple Source) : Optional - Type of price data to extract (defaults to Close)
line_size (simple int) : Optional - Width of the line
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using index-based x-coordinates
method draw_ctf_line_index(self, line_size, line_color)
Renders a line from a varip float array using index coordinates
Namespace types: array
Parameters:
self (array)
line_size (simple int) : Optional - Width of the line, defaults to 2
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using index-based x-coordinates
plot_ctf_tick_candles(source, candle_type, number_of_ticks, timezone, tied_open, ema_period, bullish_color, bearish_color, line_width, ema_color, use_time_indexing)
Plots tick-based candles with moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_ticks (simple int) : Number of ticks per candle
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
ema_period (simple float) : Period for the exponential moving average
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
line_width (simple int) : Optional - Width of the moving average line, defaults to 2
ema_color (color) : Optional - Color of the moving average line
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart with EMA overlay
plot_ctf_tick_candles(source, candle_type, number_of_ticks, timezone, tied_open, bullish_color, bearish_color, use_time_indexing)
Plots tick-based candles without moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_ticks (simple int) : Number of ticks per candle
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart without moving average
plot_ctf_time_candles(source, candle_type, number_of_seconds, timezone, tied_open, ema_period, bullish_color, bearish_color, line_width, ema_color, use_time_indexing)
Plots time-based candles with moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_seconds (simple float) : Time duration per candle in seconds
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
ema_period (simple float) : Period for the exponential moving average
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
line_width (simple int) : Optional - Width of the moving average line, defaults to 2
ema_color (color) : Optional - Color of the moving average line
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart with EMA overlay
plot_ctf_time_candles(source, candle_type, number_of_seconds, timezone, tied_open, bullish_color, bearish_color, use_time_indexing)
Plots time-based candles without moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_seconds (simple float) : Time duration per candle in seconds
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart without moving average
plot_ctf_candles(source, candle_type, sample_type, number_of_ticks, number_of_seconds, timezone, tied_open, ema_period, bullish_color, bearish_color, enable_ema, line_width, ema_color, use_time_indexing)
Unified function for plotting candles with comprehensive options
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Optional - Type of candle chart to display
sample_type (simple SampleType) : Optional - Method for sampling data (Time or Ticks)
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks)
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time)
timezone (simple int) : Optional - Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Optional - Whether to tie open price to close of previous candle
ema_period (simple float) : Optional - Period for the exponential moving average
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
enable_ema (bool) : Optional - Whether to display the EMA overlay
line_width (simple int) : Optional - Width of the moving average line, defaults to 2
ema_color (color) : Optional - Color of the moving average line
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart with optional EMA overlay
ctf_candles_array(source, candle_type, sample_type, number_of_ticks, number_of_seconds, tied_open, bullish_color, bearish_color)
Creates an array of custom timeframe candles without rendering them
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to create (candlestick or Heikin-Ashi)
sample_type (simple SampleType) : Method for sampling data (Time or Ticks)
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks)
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time)
tied_open (simple bool) : Optional - Whether to tie open price to close of previous candle
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: Array of CandleCTF objects ordered with most recent at index 0
Candle
Structure representing a complete candle with price data and display properties
Fields:
Open (series float) : Opening price of the candle
High (series float) : Highest price of the candle
Low (series float) : Lowest price of the candle
Close (series float) : Closing price of the candle
polarity (series bool) : Boolean indicating if candle is bullish (true) or bearish (false)
series_index (series int) : Sequential index identifying the candle in the series
candle_color (series color) : Color to use when rendering the candle
ready (series bool) : Boolean indicating if candle data is valid and ready for use
TickData
Structure for storing individual price updates
Fields:
price (series float) : The price value at this tick
time_delta (series float) : Time elapsed since the previous tick in milliseconds
series_index (series int) : Sequential index identifying this tick
CandleCTF
Structure representing a custom timeframe candle with additional time metadata
Fields:
Open (series float) : Opening price of the candle
High (series float) : Highest price of the candle
Low (series float) : Lowest price of the candle
Close (series float) : Closing price of the candle
polarity (series bool) : Boolean indicating if candle is bullish (true) or bearish (false)
series_index (series int) : Sequential index identifying the candle in the series
open_time (series int) : Timestamp marking when the candle was opened (in Unix time)
time_delta (series float) : Duration of the candle in milliseconds
candle_color (series color) : Color to use when rendering the candle
Advanced Session Profile Predictor with SR Boxes & ORAdvanced Session Profile Predictor with Momentum Arrows
Designed for intraday traders, this indicator analyzes price action across Asia, London, and New York sessions to predict market profiles and highlight key trading opportunities. By combining session-based profiling, Opening Range (OR) visualization, and momentum signals from Traders Dynamic Index (TDI), it offers a unique tool for anticipating trends, reversals, and breakouts. Ideal for forex, indices, and crypto on 15M–1H charts.
What Makes This Indicator Unique?
Unlike typical session indicators that only mark time zones or standard TDI scripts that focus on momentum, this tool:
Predicts market profiles (e.g., "Trend Continuation," "NY Manipulation") by analyzing session ranges and directional moves, offering actionable insights into how sessions interact.
Visualizes Opening Range (OR) boxes for the first 15 minutes of each session, helping traders spot early breakout levels.
Integrates TDI with momentum to generate precise bullish/bearish arrows, filtered by session context for improved reliability.
Simplifies decision-making with dynamic profile labels showing real-time long/short conditions based on price levels.
How Does It Work?
Session Tracking:
Asia (00:00–08:00 UTC, yellow), London (08:00–16:00 UTC, red), and New York (13:00–21:00 UTC, blue) sessions are highlighted with background colors and high/low lines (crosses).
OR boxes (first 15 minutes) are drawn for each session: yellow for Asia, red for London, blue for NY.
Profile Prediction:
Compares Asia and London session ranges and directions (e.g., trending if range > 1.5x 5-period SMA).
Examples:
Trend Continuation: Asia and London trend in the same direction—long above Asia high (uptrend) or short below Asia low (downtrend).
NY Manipulation: Asia trends, London consolidates—watch for NY breakouts at London high/low.
Displays the predicted profile and entry conditions in labels (e.g., "IF price hits 1.2000 LONG").
Momentum Arrows:
Uses TDI (RSI period 21, bands 34, fast MA 2) and 12-period momentum.
Green up arrow: Fast MA > upper band (>68) and momentum rising (bullish).
Red down arrow: Fast MA < lower band (<32) and momentum falling (bearish).
Support/Resistance (SR):
Plots dynamic SR boxes based on pivot highs/lows, filtered by volume (inspired by ChartPrime’s methodology, credited below).
How to Use It
Setup: Apply to a 15M–1H chart. Adjust time zone (default: UTC) and session times if needed. Customize TDI/momentum settings for sensitivity.
Trading:
Check the top-right labels for the current profile and entry conditions (e.g., "IF price hits LONG/SHORT").
Confirm entries with green up arrows (bullish) or red down arrows (bearish).
Use OR boxes and session high/low lines to identify breakout or reversal levels.
Example: In "NY Manipulation," wait for price to hit London high (long) or low (short) during NY session, confirmed by an arrow.
Best Markets: Forex (EUR/USD), indices (SPX500), crypto (BTC/USD) with sufficient intraday volatility.
Underlying Concepts
Session Profiling: Detects trends (range > SMA * threshold) and manipulation (e.g., London breaking Asia’s high/low) to predict NY behavior.
OR Boxes: Marks the first 15 minutes’ high/low as a breakout zone (time-based, 900,000 ms).
TDI + Momentum: Combines RSI-based bands with price change (close – close ) for momentum signals.
SR Boxes: Identifies pivots over a lookback period (default 20), scaled by ATR and filtered by volume thresholds.
Credits
The SR box logic is inspired by ChartPrime’s volume-filtered support/resistance methodology, adapted with custom breakout/hold detection. Original authors are credited for their foundational work.
Chart Setup
Displays session backgrounds, OR boxes, high/low lines, TDI arrows, and profile labels. Keep other indicators off for clarity.
MTF Ichimoku Conversion Line SMA with H/L mirrored levelsWelcome to MTF Ichimoku Conversion Line with SMA Highs/Lows Extended Lines!
1. Overview
It is designed to provide a multi-timeframe view of market trends and potential support/resistance levels by obtaining a Simple Moving Average (SMA) of the Conversion Line of Ichimoku Equibilium (Ichimoku Kinko-Hyo), which acts as a substantial trend line on the candlestick chart. The SMA of the conversion line smooths out price fluctuations and indicates the overall trend direction—if the candles are above it, the trend can be read as an uptrend, while below it, the trend can be read as a downtrend.
2. Calculation
The indicator first calculates the Conversion Line (see the description of Ichimoku theory anywhere, e.g., Wikipedia), as the average of the highest high and lowest low over a user-defined period (Conversion Line Length, default is 9, also recommended is 9).
It then retrieves this Conversion Line from a higher timeframe (MTF Timeframe) to add a broader perspective. Using a specified period (SMA Length)., an SMA is computed on this multi-timeframe conversion line. This SMA serves as a trend line that visually represents the prevailing price trend, making it easier to assess market direction.
3. Pivot Highs/low detection and drawing their extensions
In addition, the indicator identifies pivot highs and lows from the SMA data using a defined pivot length. When these pivots occur, horizontal lines are drawn and extended across the chart. These extended lines (drawn in a yellowish color by default) include a full extension, a half extension, and a middle extension line representing the midpoint between the high and low pivot.
4. Mirror lines
The indicator also offers optional mirror line features. When the Mirror Upside option is enabled, five additional lines are drawn above the highest extended yellow line at equal intervals. Similarly, when the Mirror Downside option is enabled, five lines are drawn below the lowest extended yellow line. These light gray mirror lines serve as extra reference levels, which can help identify potential support or resistance zones.
5. Parameters
User parameters include:
- Conversion Line Length: The period used to calculate the conversion line.
- MTF Timeframe: The higher timeframe from which the conversion line is obtained.
- SMA Length: The period over which the SMA is calculated on the conversion line.
- SMA Mode: A toggle to display either the SMA or the raw conversion line (SMA recommended).
- SMA Line Width: The thickness of the SMA line.
- Pivot Length for SMA Highs/Lows: The period used to detect pivot highs and lows in the SMA.
- Horizontal Extension: Number of bars by which the pivot and extended lines are drawn across the chart
- Colors for High and Low Pivot Lines and Extended Lines: Customizable colors are used to draw the lines.
Mirror Upside and Mirror Downside: These options enable drawing additional mirror lines above and below the extended lines.
- Hide Old Lines: An option to hide previous pivot lines once new ones are drawn for a cleaner chart. Turned on by default.
6. Conclusion
Overall, the Conversion Line SMA in this indicator smooths out the conversion line data and effectively functions as a trend line for the candlestick chart, helping traders visually interpret the underlying market trend. The extended and mirror lines provide further context for potential price reversal or continuation areas, making this a powerful tool for multi-timeframe technical analysis.
Opening Range, Initial Balance, Opening Price, Pre-market Levels### Description of the Indicator: **Opening Range, Initial Balance, Opening Price, Pre-market Levels**
This custom TradingView indicator provides a comprehensive view of key price levels for intraday trading, specifically designed to track important levels from the Opening Range (OR), Initial Balance (IB), Opening Price (OP), and Pre-market session (PM). These levels are essential for traders to gauge potential market movements and identify critical areas of support and resistance.
#### **Features:**
1. **Opening Range (OR):**
- This is the high and low of the first 30 minutes of the regular market session (09:30 - 10:00 EST).
- The OR high and low act as significant levels that may influence price movement for the rest of the day.
- The mid-level of the Opening Range (OR Mid) is also plotted to give a more detailed view of potential price action.
2. **Initial Balance (IB):**
- The Initial Balance is the range created during the first hour of market activity (09:30 - 10:30 EST).
- This range often sets the tone for the market's direction. The IB high and low, along with the IB midline, are plotted for quick reference.
3. **Opening Price (OP):**
- The opening price of the market is marked as a circle and labeled "OP."
- This level provides context for market sentiment when compared to the high and low levels.
4. **Pre-market Levels (PM):**
- The pre-market session (04:00 - 09:30 EST) has its own important levels that are calculated for the high, low, and mid range (PM High, PM Low, and PM Mid).
- These levels are plotted and are useful for traders to understand where the market stood before the regular session opened.
#### **Customization Options:**
- **Exchange Timezone:** You can choose whether to display the times in the exchange's local timezone or in your own preferred timezone.
- **Mid Levels Display:** You can toggle whether the mid levels for each range (OR, IB, PM) should be shown on the chart.
- **Level Color Change:** The colors of the plotted levels (high, low, mid) change based on whether the price is above or below the respective level, making it easy to visualize potential support and resistance.
- **Label Positions:** The position of the labels (OR, IB, OP, PM) on the chart can be customized to avoid overlap with other data points.
#### **Key Use Cases:**
- **Intraday Trend Analysis:** Use the OR and IB to identify key levels for the day, providing insights into the possible trend or range for the day.
- **Pre-market Insights:** The PM levels are crucial for understanding where the market stood during the pre-market hours and can be used as reference points during the regular session.
- **Potential Support and Resistance:** The high and low levels of the OR, IB, and PM sessions can act as potential support or resistance, which are useful for setting stop-loss and take-profit levels.
#### **How to Use:**
- Pay attention to the levels provided for OR, IB, and PM as potential entry and exit points.
- Watch for breakouts or reversals around these levels, especially when combined with other technical indicators or price action patterns.
- The mid levels offer an additional reference to assess price direction or identify possible areas of consolidation.
This indicator is perfect for day traders who rely on key intraday levels and pre-market activity to make informed trading decisions. It helps to streamline the process of identifying potential breakouts, reversals, and ranges in the market.
2022 Model ICT Entry Strategy [TradingFinder] One Setup For Life🔵 Introduction
The ICT 2022 model, introduced by Michael Huddleston, is an advanced trading strategy rooted in liquidity and price imbalance, where time and price serve as the core elements. This ICT 2022 trading strategy is an algorithmic approach designed to analyze liquidity and imbalances in the market. It incorporates concepts such as Fair Value Gap (FVG), Liquidity Sweep, and Market Structure Shift (MSS) to help traders identify liquidity movements and structural changes in the market, enabling them to determine optimal entry and exit points for their trades.
This Full ICT Day Trading Model empowers traders to pinpoint the Previous Day High/Low as well as the highs and lows of critical sessions like the London and New York sessions. These levels act as Liquidity Zones, which are frequently swept prior to a market structure shift (MSS) or a retracement to areas such as Optimal Trade Entry (OTE).
Bullish :
Bearish :
🔵 How to Use
The ICT 2022 model is a sophisticated trading strategy that focuses on identifying key liquidity levels and price movements. It operates based on two main principles. In the first phase, the price approaches liquidity zones and sweeps critical levels such as the previous day’s high or low and key session levels.
This movement is known as a Liquidity Sweep. In the second phase, following the sweep, the price retraces to areas like the FVG (Fair Value Gap), creating ideal entry points for trades. Below is a detailed explanation of how to apply this strategy in bullish and bearish setups.
🟣 Bullish ICT 2022 Model Setup
To use the ICT 2022 model in a bullish setup, start by identifying the Previous Day High/Low or key session levels, such as those of the London or New York sessions. In a bullish setup, the price usually moves downward first, sweeping the Liquidity Low. This move, known as a Liquidity Sweep, reflects the collection of buy orders by major market participants.
After the liquidity sweep, the price should shift market structure and start moving upward; this shift, referred to as Market Structure Shift (MSS), signals the beginning of an upward trend. Following MSS, areas like FVG, located within the Discount Zone, are identified. At this stage, the trader waits for the price to retrace to these zones. Once the price returns, a long trade is executed.
Finally, the stop-loss should be set below the liquidity low to manage risk, while the take-profit target is usually placed above the previous day’s high or other identified liquidity levels. This structure enables traders to take advantage of the upward price movement after the liquidity sweep.
🟣 Bearish ICT 2022 Model Setup
To identify a bearish setup in the ICT 2022 model, begin by marking the Previous Day High/Low or key session levels, such as the London or New York sessions. In this scenario, the price typically moves upward first, sweeping the Liquidity High. This move, known as a Liquidity Sweep, signifies the collection of sell orders by key market players.
After the liquidity sweep, the price should shift market structure downward. This movement, called the Market Structure Shift (MSS), indicates the start of a downtrend. Following MSS, areas such as FVG, found within the Premium Zone, are identified. At this stage, the trader waits for the price to retrace to these areas. Once the price revisits these zones, a short trade is executed.
In this setup, the stop-loss should be placed above the liquidity high to control risk, while the take-profit target is typically set below the previous day’s low or another defined liquidity level. This approach allows traders to capitalize on the downward price movement following the liquidity sweep.
🔵 Settings
Swing period : You can set the swing detection period.
Max Swing Back Method : It is in two modes "All" and "Custom". If it is in "All" mode, it will check all swings, and if it is in "Custom" mode, it will check the swings to the extent you determine.
Max Swing Back : You can set the number of swings that will go back for checking.
FVG Length : Default is 120 Bar.
MSS Length : Default is 80 Bar.
FVG Filter : This refines the number of identified FVG areas based on a specified algorithm to focus on higher quality signals and reduce noise.
Types of FVG filters :
Very Aggressive Filter: Adds a condition where, for an upward FVG, the last candle's highest price must exceed the middle candle's highest price, and for a downward FVG, the last candle's lowest price must be lower than the middle candle's lowest price. This minimally filters out FVGs.
Aggressive Filter: Builds on the Very Aggressive mode by ensuring the middle candle is not too small, filtering out more FVGs.
Defensive Filter: Adds criteria regarding the size and structure of the middle candle, requiring it to have a substantial body and specific polarity conditions, filtering out a significant number of FVGs.
Very Defensive Filter: Further refines filtering by ensuring the first and third candles are not small-bodied doji candles, retaining only the highest quality signals.
🔵 Conclusion
The ICT 2022 model is a comprehensive and advanced trading strategy designed around key concepts such as liquidity, price imbalance, and market structure shifts (MSS). By focusing on the sweep of critical levels such as the previous day’s high/low and important trading sessions like London and New York, this strategy enables traders to predict market movements with greater precision.
The use of tools like FVG in this model helps traders fine-tune their entry and exit points and take advantage of bullish and bearish trends after liquidity sweeps. Moreover, combining this strategy with precise timing during key trading sessions allows traders to minimize risk and maximize returns.
In conclusion, the ICT 2022 model emphasizes the importance of time and liquidity, making it a powerful tool for both professional and novice traders. By applying the principles of this model, you can make more informed trading decisions and seize opportunities in financial markets more effectively.
SSL Channel MTFSSL Channel with MTF support, This eliminates the noise of a basic SSL Channel script which is based on ErwinBeckers SSL Channel. So i have used a Multi Time Frame approach to have a clear confirmation of trend and reduce Noise and False signals unlike basic SSL Channel.
This script can be used to determine.
Support/Resistance
High/Low Breakout
Trend Direction
MA candles for Entry
The high and low sma are plotted as SSL CHANNEL when ever the high and low sma cross each other a direction change is observed.
The direction of SSL channel determines the trend of the price. The length of the channel can be changed as required a low value has a high noise and direction can be determined with low accuracy. Increasing the length of SSL channel has high accuracy trend confirmation.
The MTF SSL Channel uses plot from higher timeframe this helps in using SSL Channel as a Price Action Tool. Price when ever crosses over or below the channel determines a breakout. Price tries to move between the High SMA line and Low SMA Line of the SSL Channel rejection, breakouts can be easily observed on a lower timeframe using SSL Channel Plot from a higher timeframe.
I have used 5min/15min chart with MTF SSL from a 1Hr/4Hr and a length of 5 instead of 10. This helps quick direction changes over a period of 1hr to 4hr. Price is trapped within the High SMA and Low SMA lines of SSL Channel. In addition to SSL High Low and average mid line is plotted to additional reference.
Buy Sell Signals are plotted based on crossover of SMA High and Low.
Candle are Plotted Using a SMA with length of 5. This Candle Plot can be used to make an entry based on direction confirmation of SSL. keep in mind the direction of SSL Plot and the candle must be same. Preferably Entry can made above or below the midline of SSL Channel. The Candle Plot eliminates the Noise of traditional Japanese Candlesticks.
Additionally MACD Crossover and MACD Trend line confirmations can be used to confirm a Buy Sell and Entry signals
Alerts are also plotted accordingly.
6 Band Parametric EQThis indicator implements a complete parametric equalizer on any data source using high-pass and low-pass filters, high and low shelving filters, and six fully configurable bell filters. Each filter stage features standard audio DSP controls including frequency, Q factor, and gain where applicable. While parametric EQ is typically used for audio processing, this implementation raises questions about the nature of filtering in technical analysis. Why stop at simple moving averages when you can shape your signal's frequency response with surgical precision? The answer may reveal more about our assumptions than our indicators.
Filter Types and Parameters
High-Pass Filter:
A high-pass filter attenuates frequency components below its cutoff frequency while passing higher frequencies. The Q parameter controls resonance at the cutoff point, with higher values creating more pronounced peaks.
Low-Pass Filter:
The low-pass filter does the opposite - it attenuates frequencies above the cutoff while passing lower frequencies. Like the high-pass, its Q parameter affects the resonance at the cutoff frequency.
High/Low Shelf Filters:
Shelf filters boost or cut all frequencies above (high shelf) or below (low shelf) the target frequency. The slope parameter determines the steepness of the transition around the target frequency , with a value of 1.0 creating a gentle slope and lower values making the transition more abrupt. The gain parameter sets the amount of boost or cut in decibels.
Bell Filters:
Bell (or peaking) filters create a boost or cut centered around a specific frequency. A bell filter's frequency parameter determines the center point of the effect, while Q controls the width of the affected frequency range - higher Q values create a narrower bandwidth. The gain parameter defines the amount of boost or cut in decibels.
All filters run in series, processing the signal in this order: high-pass → low shelf → bell filters → high shelf → low-pass. Each stage can be independently enabled or bypassed.
The frequency parameter for all filters represents the period length of the targeted frequency component. Lower values target higher frequencies and vice versa. All gain values are in decibels, where positive values boost and negative values cut.
The 6-Band Parametric EQ combines these filters into a comprehensive frequency shaping tool. Just as audio engineers use parametric EQs to sculpt sound, this indicator lets you shape market data's frequency components with surgical precision. But beyond its technical implementation, this indicator serves as a thought experiment about the nature of filtering in technical analysis. While traditional indicators often rely on simple moving averages or single-frequency filters, the parametric EQ takes this concept to its logical extreme - offering complete control over the frequency domain of price action. Whether this level of filtering precision is useful for analysis is perhaps less important than what it reveals about our assumptions regarding market data and its frequency components.
Previous Week High & Low with middle lineDescription:
The Previous Week High & Low Indicator is a powerful tool designed to provide traders with key reference levels from the previous trading week. It dynamically calculates and plots the previous week's high, low, and midpoint levels directly on your chart, helping you identify critical support and resistance zones.
Features:
1. **Previous Week High and Low Lines**:
- The indicator displays the high and low prices of the previous trading week, allowing you to analyze price action relative to these levels.
- These lines are plotted as step lines, visible only during the active trading days (Monday to Friday), ensuring clean and uncluttered charts.
2. Midpoint Line:
- The midpoint between the previous week's high and low is calculated and displayed as a reference level.
- This white line can act as a psychological pivot point for market participants.
3. Customizable Display:
- You can toggle the visibility of the high and low lines using input options, tailoring the indicator to your preferences.
4. Precision and Aesthetics:
- The lines are plotted with precision and styled for clarity, using subtle transparency for an unobtrusive yet informative appearance.
Use Case:
- This indicator is ideal for traders who rely on historical price levels for planning entries, exits, or stop-loss placements.
- It works seamlessly with any timeframe and asset, making it versatile for various trading strategies.
How It Works:
- The indicator fetches the previous week's high and low prices using the weekly timeframe and "lookahead" mode to ensure these levels remain static after the week's close.
- The lines are plotted only on weekdays (Monday to Friday) to exclude weekend data, ensuring accuracy for markets that operate 24/5.
This tool simplifies your chart analysis and empowers you to make informed trading decisions based on historical price dynamics.
Asia Sessions AutoPlotting**Asia Sessions AutoPlotting**
This script is designed to automatically detect and plot the Asia session high and low levels directly on your chart, providing key session data for trading analysis. It is highly customizable, making it an essential tool for traders who rely on session data for decision-making.
### Key Features:
- **Asia Session Detection**: Automatically identifies the Asia session based on user-defined time settings (default: 0000-0845 UTC).
- **High/Low Line Plotting**: Displays high and low price levels for the session with customizable colors and line styles.
- **Line Extensions**: Option to extend session high/low lines for future price action reference.
- **Session Background Fill**: Adds an optional colored background to highlight the Asia session period.
- **Day Labels**: Includes labels for the session high/low levels with the corresponding day of the week.
- **Dynamic Session History**: Limits the display to a user-specified number of past sessions (default: 7) to keep the chart clean and focused.
- **Customizable Colors**: Highlights Mondays with unique colors for easy identification, while other weekdays use a different scheme.
### Use Cases:
- Identify key session levels for trading strategies.
- Monitor Asia session dynamics and their impact on subsequent sessions.
- Spot significant price reactions around session highs/lows.
### Inputs:
- **Session Time**: Adjust the session time to match your preferred Asia trading hours.
- **Toggle High/Low Lines**: Enable or disable the plotting of session highs and lows.
- **Line Extensions**: Extend the session high/low lines into future bars for better visualization.
- **Background Highlight**: Toggle a colored background for the Asia session.
- **Maximum Sessions**: Define how many past sessions to display for clarity.
This script is perfect for intraday traders, scalpers, and swing traders looking to gain insight into the Asia session and its influence on global markets. Fully adjustable and easy to use, it enhances your chart with critical information at a glance.
Simply add it to your TradingView chart, configure your settings, and let it do the work for you!
Katalyst's Opening Range BreakoutKatalyst's Opening Range Breakout + No Trade Zone
📜 Overview:
This indicator allows traders to visualize the high and low of the opening range for a user-selected timeframe (e.g., 30s, 1m, 5m, 15m). It features fully customizable lines, labels, and an optional **No Trade Zone** fill to help you identify breakout levels with ease.
---
🎯 Key Features:
1. **Customizable Opening Range**:
- Select your preferred opening range duration: **30 seconds, 1 minute, 2 minutes, 5 minutes, 10 minutes, or 15 minutes**.
- The indicator calculates and plots the **high** and **low** of the selected opening range.
2. **Dynamic Line Styling**:
- Choose the **line color**, **transparency**, and **style**: **Solid, Dashed, or Dotted**.
- Lines extend to the right of the chart for clarity.
3. **No Trade Zone** *(Optional / Disabled by default)*:
- When enabled, fills the area between the high and low lines with a customizable **color and transparency**.
- Helps visually identify consolidation areas where trading might be avoided.
4. **Labels for Precision**:
- Clearly displays the **Opening Range High** and **Low** values.
- Labels are color-coded and positioned dynamically for easy interpretation.
5. **Clean and Efficient Updates**:
- The indicator deletes old lines, labels, and fills before creating new ones, ensuring a clutter-free chart.
---
⚙️ How to Use:
1. **Select Your Timeframe**:
- From the settings, choose your desired opening range duration: 30s, 1m, 2m, 5m, 10m, or 15m.
2. **Customize the Visuals**:
- Adjust line color, style, and transparency.
- Enable the **No Trade Zone** for a transparent background fill between the high and low lines.
3. **Interpret the Breakout**:
- Watch for price movements above or below the **opening range** to identify potential breakout opportunities.
---
🛠 Settings:
Opening Range Duration: Select the timeframe for the opening range (30s, 1m, 2m, 5m, 10m, 15m).
Line Color: Set the color of the range lines.
Line Transparency: Adjust the transparency of the lines (0 = solid, 100 = invisible).
Line Style: Choose line style: Solid, Dashed, or Dotted.
Label Colors: Customize the label colors for the high and low values.
Enable No Trade Zone: Fill the area between high and low lines with a transparent color.
No Trade Zone Color: Set the fill color for the no trade zone.
No Trade Zone Transparency: Adjust the transparency of the no trade zone fill.
---
📈 Ideal For
Day traders and scalpers looking to trade **breakouts**.
Traders who want to identify areas of consolidation visually.
Anyone who relies on the **opening range** for their trading strategy.
---
🔍 Example Usage:
Set the opening range to **5 minutes** and enable the **No Trade Zone** with a light red fill.
Watch for price to break above or below the high/low lines to signal potential trade opportunities.
---
✨ Why Use This Indicator?
This script simplifies your breakout strategy by providing a clear, visually appealing representation of the opening range. The flexible customization options and the optional **No Trade Zone** make it a powerful tool for identifying high-probability trades.
---
Let me know if you need any additional tweaks or clarifications for this description. It's all set to help traders understand and use your powerful script! 🚀📈
Ensemble Alerts█ OVERVIEW
This indicator creates highly customizable alert conditions and messages by combining several technical conditions into groups , which users can specify directly from the "Settings/Inputs" tab. It offers a flexible framework for building and testing complex alert conditions without requiring code modifications for each adjustment.
█ CONCEPTS
Ensemble analysis
Ensemble analysis is a form of data analysis that combines several "weaker" models to produce a potentially more robust model. In a trading context, one of the most prevalent forms of ensemble analysis is the aggregation (grouping) of several indicators to derive market insights and reinforce trading decisions. With this analysis, traders typically inspect multiple indicators, signaling trade actions when specific conditions or groups of conditions align.
Simplifying ensemble creation
Combining indicators into one or more ensembles can be challenging, especially for users without programming knowledge. It usually involves writing custom scripts to aggregate the indicators and trigger trading alerts based on the confluence of specific conditions. Making such scripts customizable via inputs poses an additional challenge, as it often involves complicated input menus and conditional logic.
This indicator addresses these challenges by providing a simple, flexible input menu where users can easily define alert criteria by listing groups of conditions from various technical indicators in simple text boxes . With this script, you can create complex alert conditions intuitively from the "Settings/Inputs" tab without ever writing or modifying a single line of code. This framework makes advanced alert setups more accessible to non-coders. Additionally, it can help Pine programmers save time and effort when testing various condition combinations.
█ FEATURES
Configurable alert direction
The "Direction" dropdown at the top of the "Settings/Inputs" tab specifies the allowed direction for the alert conditions. There are four possible options:
• Up only : The indicator only evaluates upward conditions.
• Down only : The indicator only evaluates downward conditions.
• Up and down (default): The indicator evaluates upward and downward conditions, creating alert triggers for both.
• Alternating : The indicator prevents alert triggers for consecutive conditions in the same direction. An upward condition must be the first occurrence after a downward condition to trigger an alert, and vice versa for downward conditions.
Flexible condition groups
This script features six text inputs where users can define distinct condition groups (ensembles) for their alerts. An alert trigger occurs if all the conditions in at least one group occur.
Each input accepts a comma-separated list of numbers with optional spaces (e.g., "1, 4, 8"). Each listed number, from 1 to 35, corresponds to a specific individual condition. Below are the conditions that the numbers represent:
1 — RSI above/below threshold
2 — RSI below/above threshold
3 — Stoch above/below threshold
4 — Stoch below/above threshold
5 — Stoch K over/under D
6 — Stoch K under/over D
7 — AO above/below threshold
8 — AO below/above threshold
9 — AO rising/falling
10 — AO falling/rising
11 — Supertrend up/down
12 — Supertrend down/up
13 — Close above/below MA
14 — Close below/above MA
15 — Close above/below open
16 — Close below/above open
17 — Close increase/decrease
18 — Close decrease/increase
19 — Close near Donchian top/bottom (Close > (Mid + HH) / 2)
20 — Close near Donchian bottom/top (Close < (Mid + LL) / 2)
21 — New Donchian high/low
22 — New Donchian low/high
23 — Rising volume
24 — Falling volume
25 — Volume above average (Volume > SMA(Volume, 20))
26 — Volume below average (Volume < SMA(Volume, 20))
27 — High body to range ratio (Abs(Close - Open) / (High - Low) > 0.5)
28 — Low body to range ratio (Abs(Close - Open) / (High - Low) < 0.5)
29 — High relative volatility (ATR(7) > ATR(40))
30 — Low relative volatility (ATR(7) < ATR(40))
31 — External condition 1
32 — External condition 2
33 — External condition 3
34 — External condition 4
35 — External condition 5
These constituent conditions fall into three distinct categories:
• Directional pairs : The numbers 1-22 correspond to pairs of opposing upward and downward conditions. For example, if one of the inputs includes "1" in the comma-separated list, that group uses the "RSI above/below threshold" condition pair. In this case, the RSI must be above a high threshold for the group to trigger an upward alert, and the RSI must be below a defined low threshold to trigger a downward alert.
• Non-directional filters : The numbers 23-30 correspond to conditions that do not represent directional information. These conditions act as filters for both upward and downward alerts. Traders often use non-directional conditions to refine trending or mean reversion signals. For instance, if one of the input lists includes "30", that group uses the "Low relative volatility" condition. The group can trigger an upward or downward alert only if the 7-period Average True Range (ATR) is below the 40-period ATR.
• External conditions : The numbers 31-35 correspond to external conditions based on the plots from other indicators on the chart. To set these conditions, use the source inputs in the "External conditions" section near the bottom of the "Settings/Inputs" tab. The external value can represent an upward, downward, or non-directional condition based on the following logic:
▫ Any value above 0 represents an upward condition.
▫ Any value below 0 represents a downward condition.
▫ If the checkbox next to the source input is selected, the condition becomes non-directional . Any group that uses the condition can trigger upward or downward alerts only if the source value is not 0.
To learn more about using plotted values from other indicators, see this article in our Help Center and the Source input section of our Pine Script™ User Manual.
Group markers
Each comma-separated list represents a distinct group , where all the listed conditions must occur to trigger an alert. This script assigns preset markers (names) to each condition group to make the active ensembles easily identifiable in the generated alert messages and labels. The markers assigned to each group use the format "M", where "M" is short for "Marker" and "x" is the group number. The titles of the inputs at the top of the "Settings/Inputs" tab show these markers for convenience.
For upward conditions, the labels and alert messages show group markers with upward triangles (e.g., "M1▲"). For downward conditions, they show markers with downward triangles (e.g., "M1▼").
NOTE: By default, this script populates the "M1" field with a pre-configured list for a mean reversion group ("2,18,24,28"). The other fields are empty. If any "M*" input does not contain a value, the indicator ignores it in the alert calculations.
Custom alert messages
By default, the indicator's alert message text contains the activated markers and their direction as a comma-separated list. Users can override this message for upward or downward alerts with the two text fields at the bottom of the "Settings/Inputs" tab. When the fields are not empty , the alerts use that text instead of the default marker list.
NOTE: This script generates alert triggers, not the alerts themselves. To set up an alert based on this script's conditions, open the "Create Alert" dialog box, then select the "Ensemble Alerts" and "Any alert() function call" options in the "Condition" tabs. See the Alerts FAQ in our Pine Script™ User Manual for more information.
Condition visualization
This script offers organized visualizations of its conditions, allowing users to inspect the behaviors of each condition alongside the specified groups. The key visual features include:
1) Conditional plots
• The indicator plots the history of each individual condition, excluding the external conditions, as circles at different levels. Opposite conditions appear at positive and negative levels with the same absolute value. The plots for each condition show values only on the bars where they occur.
• Each condition's plot is color-coded based on its type. Aqua and orange plots represent opposing directional conditions, and purple plots represent non-directional conditions. The titles of the plots also contain the condition numbers to which they apply.
• The plots in the separate pane can be turned on or off with the "Show plots in pane" checkbox near the top of the "Settings/Inputs" tab. This input only toggles the color-coded circles, which reduces the graphical load. If you deactivate these visuals, you can still inspect each condition from the script's status line and the Data Window.
• As a bonus, the indicator includes "Up alert" and "Down alert" plots in the Data Window, representing the combined upward and downward ensemble alert conditions. These plots are also usable in additional indicator-on-indicator calculations.
2) Dynamic labels
• The indicator draws a label on the main chart pane displaying the activated group markers (e.g., "M1▲") each time an alert condition occurs.
• The labels for upward alerts appear below chart bars. The labels for downward alerts appear above the bars.
NOTE: This indicator can display up to 500 labels because that is the maximum allowed for a single Pine script.
3) Background highlighting
• The indicator can highlight the main chart's background on bars where upward or downward condition groups activate. Use the "Highlight background" inputs in the "Settings/Inputs" tab to enable these highlights and customize their colors.
• Unlike the dynamic labels, these background highlights are available for all chart bars, irrespective of the number of condition occurrences.
█ NOTES
• This script uses Pine Script™ v6, the latest version of TradingView's programming language. See the Release notes and Migration guide to learn what's new in v6 and how to convert your scripts to this version.
• This script imports our new Alerts library, which features functions that provide high-level simplicity for working with complex compound conditions and alerts. We used the library's `compoundAlertMessage()` function in this indicator. It evaluates items from "bool" arrays in groups specified by an array of strings containing comma-separated index lists , returning a tuple of "string" values containing the marker of each activated group.
• The script imports the latest version of the ta library to calculate several technical indicators not included in the built-in `ta.*` namespace, including Double Exponential Moving Average (DEMA), Triple Exponential Moving Average (TEMA), Fractal Adaptive Moving Average (FRAMA), Tilson T3, Awesome Oscillator (AO), Full Stochastic (%K and %D), SuperTrend, and Donchian Channels.
• The script uses the `force_overlay` parameter in the label.new() and bgcolor() calls to display the drawings and background colors in the main chart pane.
• The plots and hlines use the available `display.*` constants to determine whether the visuals appear in the separate pane.
Look first. Then leap.
Fibonacci Moving Average PlusFibonacci Moving Average Plus is a sophisticated technical indicator that employs the first 15 numbers of the Fibonacci sequence to create dynamic moving average channels. This indicator aims to capture both immediate and long-term price movements by calculating Exponential Moving Averages (EMAs) based on these Fibonacci values. By using Fibonacci-based moving averages for both high and low price points, the indicator generates a visual channel that reflects the ebb and flow of market trends, acting as potential zones of support and resistance. Additionally, the indicator provides midline, retracement, and extension levels rooted in Fibonacci ratios, which are frequently observed as key levels for reversals or trend continuation.
Ideology Behind Using Fibonacci Sequence-Based Moving Averages
The Fibonacci sequence, known for its mathematical harmony and prevalence in natural patterns, is widely utilized in technical analysis to identify potential turning points in markets. In this indicator, the first 15 Fibonacci numbers (5, 8, 13, 21, etc.) are used as the lookback periods for EMAs to capture different layers of market sentiment. These moving averages represent timeframes that are theoretically in alignment with the natural rhythms of market cycles, where key levels—often coinciding with Fibonacci numbers—can act as magnetic points for price.
The Fibonacci high and low channels aim to encapsulate price action, giving traders a sense of whether the market is trending, consolidating, or experiencing reversal pressure. These levels, grounded in both mathematics and market psychology, help traders spot areas where price might face resistance or find support.
Key Features
Fibonacci Moving Average High and Low: This indicator calculates the high and low EMAs based on Fibonacci sequence numbers (e.g., 5, 8, 13, etc.) for enhanced trend analysis.
Golden Pocket Retracement (GPR) and Extension (GPE) Bands: Displays common Fibonacci retracement and extension levels (0.618, 0.65 for retracement, and 1.618, 1.65 for extension).
Midline: Plots the average of the Fibonacci high and low to act as an additional reference level.
Stop-Loss Levels: Provides suggested stop-loss levels based on Fibonacci levels for both long and short positions.
Basic User Guide
Adjust Input Settings:
Input Timeframe: Set a specific timeframe for the Fibonacci moving average calculation, separate from the chart's primary timeframe.
Show Fibonacci MA High/Low: Toggle the visibility of the high and low Fibonacci moving averages.
Show Mid Line: Display a midline for added trend reference.
Show Golden Pocket Bands: Choose to display retracement or extension bands for potential support or resistance zones.
Show Stop-Loss Levels: Enable to visualize potential stop-loss levels for both long and short trades.
Interpretation:
Fibonacci MA High and Low: Use these lines to gauge the general trend. When the price is above both, it may indicate an uptrend; below both, a downtrend.
Golden Pocket Retracement: This zone (between 0.618 and 0.65) is often a key level for potential reversals or support/resistance.
Golden Pocket Extension: The 1.618 and 1.65 levels can indicate potential profit-taking or trend exhaustion points.
Stop-Loss Levels: The calculated stop-loss levels (long SL below and short SL above) can aid in risk management.
Customization:
You can customize the appearance and visibility of each component through the input settings to fit your specific strategy and visual preferences.
This indicator should be used alongside other technical analysis tools to provide a more comprehensive trading approach.
This Indicator would not exist without the original contributions and blessing from Sofien Kaabar
Market structureHi all!
This script shows you the market structure. You can choose to show internal market structure (with pivots of a default length of 5) and swing market structure (with pivots of a default length of 50). For these two trends it will show you:
• Break of structure (BOS)
• Change of character (CHoCH) (mandatory)
• Equal high/low (EQH/EQL)
It's inspired by "Smart Money Concepts (SMC) " by LuxAlgo that will also show you the market structure.
It will create the two market structures depending on the pivots found. Both of these market structures can be enabled/disabled. The pivots length can be configured separately. The pivots found will be the 'base' of this indicator and will show you when price breaks it. When that happens a break of structure or a change of character will be created. The latest 5 pivots found within the current trends will be kept to take action on. The internal market structure is shown with dashed lines and swing market structure is shown with solid lines.
A break of structure is removed if an earlier pivots within the same trend is broken. Like in the images below, the first pivot (in the first image) is removed when an earlier pivot's higher price within the same trend is broken (the second image):
Equal high/lows have a pink zone (by default but can be changed by the user). These zones can be configured to be extended to the right (off by default). Equal high/lows are only possible if it's not been broken by price and if a later bar has a high/low within the limit it's added to the zone (without it being more 'extreme' (high or low) then the previous price). A factor (percentage of width) of the Average True Length (of length 14) that the pivot must be within to to be considered an Equal high/low. This is configurable and sets this 'limit' and is 10 by default.
You are able to show the pivots that are used. "HH" (higher high), "HL" (higher low), "LH" (lower high), "LL" (lower low) and "H"/"L" (for pivots (high/low) when the trend has changed) are the labels used.
This script has proven itself useful for me to quickly see how the current market is. You can see the pivots (price and bar) where break of structure or change of character happens to see the current trends. I hope that you will find this useful for you.
When programming I focused on simplicity and ease of read. I did not focus on performance, I will do so if it's a problem (haven't noticed it is one yet).
You can set alerts for when a change of character happens. You can configure it to fire on when it happens (all or once per bar) but it defaults to 'once_per_bar_close' to avoid repainting. This has the drawback to alert you when the bar closes.
TLDR: this is an indicator showing you the market structure (break of structures and change of characters) using swing points/pivots. Two trends can be shown, internal (with pivots of length of 5) and swing (with pivots of the length of 50).
Best of trading luck!
CandlestickPatternsLibrary "CandlestickPatterns"
zigzag(_low, _high, depth, deviation, backstep)
Parameters:
_low (float)
_high (float)
depth (int)
deviation (int)
backstep (int)
getTrend(trendType, currentClose, zz_downtrend, zz_uptrend, ema14, ema28)
Parameters:
trendType (string)
currentClose (float)
zz_downtrend (bool)
zz_uptrend (bool)
ema14 (float)
ema28 (float)
isInside(currentHigh, currentLow, currentClose, currentOpen, prevHigh, prevLow)
Parameters:
currentHigh (float)
currentLow (float)
currentClose (float)
currentOpen (float)
prevHigh (float)
prevLow (float)
checkMorningStar(open0, high0, low0, close0, open1, high1, low1, close1, open2, high2, low2, close2, innerCandleThreshold, closingMinThreshold, closingMaxThreshold, useDojiFilter, dojiSize, downTrend)
Parameters:
open0 (float)
high0 (float)
low0 (float)
close0 (float)
open1 (float)
high1 (float)
low1 (float)
close1 (float)
open2 (float)
high2 (float)
low2 (float)
close2 (float)
innerCandleThreshold (float)
closingMinThreshold (float)
closingMaxThreshold (float)
useDojiFilter (bool)
dojiSize (float)
downTrend (bool)
checkEveningStar(open0, high0, low0, close0, open1, high1, low1, close1, open2, high2, low2, close2, innerCandleThreshold, closingMinThreshold, closingMaxThreshold, useDojiFilter, dojiSize, upTrend)
Parameters:
open0 (float)
high0 (float)
low0 (float)
close0 (float)
open1 (float)
high1 (float)
low1 (float)
close1 (float)
open2 (float)
high2 (float)
low2 (float)
close2 (float)
innerCandleThreshold (float)
closingMinThreshold (float)
closingMaxThreshold (float)
useDojiFilter (bool)
dojiSize (float)
upTrend (bool)
checkHammerPattern(open, high, low, close, bodyAvg, shadowFactor, downTrend)
Parameters:
open (float)
high (float)
low (float)
close (float)
bodyAvg (float)
shadowFactor (float)
downTrend (bool)
checkInvertedHammerPattern(open, high, low, close, bodyAvg, shadowFactor, downTrend)
Parameters:
open (float)
high (float)
low (float)
close (float)
bodyAvg (float)
shadowFactor (float)
downTrend (bool)
checkHangingManPattern(open, high, low, close, bodyAvg, shadowFactor, upTrend)
Parameters:
open (float)
high (float)
low (float)
close (float)
bodyAvg (float)
shadowFactor (float)
upTrend (bool)
checkShootingStarPattern(open, high, low, close, bodyAvg, shadowFactor, upTrend)
Parameters:
open (float)
high (float)
low (float)
close (float)
bodyAvg (float)
shadowFactor (float)
upTrend (bool)
checkLevels(high0, high1, high2, low0, low1, low2, lookbackPeriod)
Parameters:
high0 (float)
high1 (float)
high2 (float)
low0 (float)
low1 (float)
low2 (float)
lookbackPeriod (int)
Flashtrader´s Statistical BandwidthsThe vast majority of traders exclusively concern
themselves with trend-following in all its facets. Scoring
points with trends on a regular basis is a difficult task
since prices do not constantly move in one direction
or another. In the case of the DAX future, for example,
only about 30 per cent of all trading days in a year are
trend days. And of these, there are x percent long ones
and x per cent short ones. Catching the very days when
prices rise or fall from the opening to the close is a major
challenge for a trader who also needs to have previously
recognised the corresponding direction.
However, there are also other ways of profit-taking
every day – for example, by using the mean reversion
strategy. The idea behind this is the fact that prices reach
a high and a low every day – but very rarely close at the
high or the low. This means that prices always move
away from these extreme points and the closing price is
somewhere in between. A profitable trading strategy can
be developed out of this.
But how can you know where the high and the low
will be tomorrow? Is it possible for you to know this in
advance? No – because no one can predict the future. Or
can they? At least it can be statistically determined how
high or low prices could go tomorrow. There is a high
degree of probability that one of the two possibilities
will materialise. It will then be necessary to act.
Calculation
Classic pivot points for the following day are calculated
from the high, low and closing price. But does it really
make sense to use such a mix? I don’t think so and
use a different calculation for this strategy. In a first step,
only the differences between the start and the high or low
are calculated on a daily basis. To avoid being dependent
on individual days and outliers, it is advisable to calculate,
in a second step, the average of these differences over
the past five days. Finally, this average will then be added
at the opening price of the current trading day for the
upper statistical bandwidth and subtracted for the lower
bandwidth.
upper bandwidth = oSTB (violet dashed line in the chart)
lower bandwidth = uSTB (violet dashedline in the chart)
The second interesting question is, if the previous day's high has been exceeded, how much further can the price rise from a mathematical/statistical point of view?
These calculated previous day highs expansions are shown as red dashed lines
Previous day's high expansion = VTHA
Previous day's low expansion = VTTA
For further orientation, the previous day's high (VTH) and the previous day's low (VTT) are shown in light blue dashed lines
And as a supplement, the previous day's close in the DAX Future at 10:00 p.m. VTSA in violet solid lines and the previous day's close in the cash register at 5:30 p.m. VTSN in yellow solid lines
Reaching the calculated extreme values does not mean that the trend has to change immediately, but there is at least temporary exhaustion potential with which you can earn a few points every day in the area of scalping.
Example for cheap entry long:
Example for cheap entry short:
Deutsch:
Die Masse der Trader beschäftigt sich ausschließlich mit Trendfolge in all ihren Facetten. Mit Trends regelmäßig zu punkten ist ein schwieriges Unterfangen, da die Kurse nicht ständig in die eine oder andere Richtung laufen. Beim DAX-Future zum Beispiel sind von allen Börsentagen im Jahr lediglich zirka 30 Prozent Trendtage. Davon sind dann auch noch x Prozent Long und x Prozent Short. Hier genau die Tage abzupassen, an denen die Kurse von Börsenbeginn bis zum Schluss steigen beziehungsweise fallen, ist eine große Herausforderung – wobei der Trader zuvor noch die entsprechende Richtung erkannt haben muss. Es gibt jedoch auch noch andere Methoden täglich Gewinne mitzunehmen, zum Beispiel mit der Mean-Reversion-Strategie (Mittelwertumkehr).
Hintergrund ist die Tatsache, dass die Kurse jeden Tag ein Hoch und ein Tief erreichen – aber sehr selten am Hoch oder am Tief schließen. Das bedeutet, dass die Preise sich immer wie der von diesen Extrempunkten wegbewegen und der Schlusskurs irgendwo dazwischen liegt. Hieraus lässt sich eine profitable Handelsstrategie entwickeln. Aber woher kannst Du wissen, wo morgen das Hoch und das Tief sein wird? Kannst Du das vorher schon wissen? Nein – denn niemand kann die Zukunft vorhersagen. Oder doch? Statistisch lässt sich zumindest bestimmen, wie hoch und wie tief die Kurse morgen steigen oder fallen könnten. Eine Seite wird mit sehr hoher Wahrscheinlichkeit ein treffen. Dann gilt es zu handeln.
Berechnung Klassischer Pivot-Punkte für den folgenden Tag werden aus Hoch, Tief und Schlusskurs berechnet. Aber ist es wirklich sinnvoll, einen solchen Mix zu verwenden? Ich finde das nicht und verwenden für diese Strategie eine andere Berechnung. Im ersten Schritt werden täglich die Differenzen nur vom Start bis zum Hoch beziehungsweise Tief errechnet. Um nicht von einzelnen Tagen und Ausreißern abhängig zu sein, empfiehlt es sich, in einem zweiten Schritt den Durchschnitt dieser Differenzen über die letzten fünf Tage zu errechnen. Zuletzt wird dann dieser Durchschnitt zum Eröffnungskurs des aktuellen Handelstages für die obere statistische Bandbreite addiert und für die untere Bandbreite subtrahiert.
Obere statistische Bandbreite = oSTB (violette gestrichelte Linie im Chart)
Untere statistische Bandbreite = uSTB (violette gestrichelte Linie im Chart)
Die zweite interessante Frage ist, wenn das Vortageshoch überschritten wurde, wie weit kann der Kurs dann noch steigen aus mathematisch/statistischer Sicht?
Diese berechneten Vortagesextremausdehnungen sind als rote gestrichelte Linien dargestellt
Vortageshochausdehnung = VTHA
Vortagestiefausdehnung = VTTA
Für die weitere Orientierung sind die Vortageshochs (VTH) und die Vortagestiefs (VTT) als hellblaue gestrichelte Linien abgebildet.
Als Ergänzung wird noch der Vortages Schluss im Dax Future um 22:00 Uhr VTSA mit einer violetten durchgezogenen Linie und der Kassamarktschluss um 17:30 Uhr mit einer gelben durchgezogenen Linie gezeigt.
Das Erreichen der berechneten Extremwerte bedeutet nicht, das der Trend sofort drehen muss, aber es sind zumindest temporäre Erschöpfungspotentiale mit denen sich im Bereich scalping täglich einige Punkte verdienen lassen.
Beispiel für günstigen Einstieg Long:
Beispiel für günstigen Einstieg Short:
Market Structure & Session Alerts### Market Structure & Session Alerts Indicator
#### Overview
The "Market Structure & Session Alerts" indicator is a comprehensive tool designed to assist traders in identifying key market structure levels, detecting liquidity sweeps, and receiving alerts for specific trading sessions. This indicator is particularly useful for traders who want to keep an eye on previous high and low levels and be alerted during pre-London and pre-New York sessions.
#### Features
1. **Previous High/Low Levels:**
- **Daily, Weekly, and Monthly Highs and Lows:** The indicator plots the previous day, week, and month high and low levels on the chart. These levels can be crucial for identifying support and resistance zones.
- **Toggle Display:** Users can choose to show or hide these levels using the "Show Previous Day/Week/Month High/Low" option.
2. **Liquidity Sweep Detection:**
- **Liquidity Sweep Identification:** The indicator detects liquidity sweeps when the current price closes above the previous day's high. This can signal potential reversals or continuations in the market.
- **Visual Alerts:** When a liquidity sweep is detected, a green triangle is plotted below the bar.
3. **Session Alerts:**
- **Session Timings:** Users can set specific start and end times for the pre-London and pre-New York sessions to match their timezone.
- **Visual Background Highlight:** The background of the chart is highlighted in yellow during the defined session times to provide a visual cue.
- **Alert Messages:** The indicator can generate alerts to notify traders when the market enters the pre-London or pre-New York session.
4. **Current Price Line:**
- The current price is plotted as a black line, providing a clear visual reference for the current market price.
#### How to Use
1. **Input Parameters:**
- `Show Previous Day/Week/Month High/Low`: Enable or disable the display of previous high/low levels.
- `Show Liquidity Sweep`: Enable or disable the detection and display of liquidity sweeps.
- `Show Session Alerts`: Enable or disable session alerts and background highlights.
2. **Session Timing Adjustments:**
- Set the `Pre-London Start`, `Pre-London End`, `Pre-New York Start`, and `Pre-New York End` times according to your timezone to ensure accurate session alerts.
3. **Alerts:**
- Make sure alerts are enabled in your TradingView settings to receive notifications when the market enters the pre-London or pre-New York sessions.
#### Example Use Cases
- **Day Traders:** Identify potential support and resistance levels using the previous day's high and low.
- **Swing Traders:** Use weekly and monthly high and low levels to determine significant market structure points.
- **Scalpers:** Detect liquidity sweeps to identify potential quick trades.
- **Session Traders:** Be alerted when the market enters key trading sessions to align your trading strategy with major market activities.
This indicator combines multiple market analysis tools into one, providing a robust system for traders to enhance their trading decisions and market awareness.
DTB
Dynamic Trendline Bands with Buy/Sell Pressure Detection
This indicator provides a comprehensive analysis of price movements by incorporating smoothed high and low bands, a midline, and the detection of buying and selling pressure. It is designed to help traders identify key support and resistance levels as well as potential buy and sell signals.
**Features:**
- **Smooth High and Low Bands:** Based on the highest high and lowest low over a specified period, smoothed using a simple moving average (SMA) to reduce noise and enhance clarity.
- **Midline:** The average of the smoothed high and low bands, providing a central reference point for price movements.
- **Buying and Selling Pressure Detection:** Highlights candles with significant buying or selling pressure, indicated by light green for buying pressure and light red for selling pressure. This is determined based on volume thresholds and price movement.
- **Trendlines:** Dynamic trendlines are drawn based on recent highs and lows, helping to visualize the current trend direction.
**How to Use:**
1. **High-Low Bands:** Use these bands to identify key support and resistance levels.
2. **Midline:** Monitor the midline for potential mean reversion trades.
3. **Buying/Selling Pressure Candles:** Look for candles highlighted in light green or red to identify potential buy or sell signals.
4. **Trendlines:** Follow the dynamic trendlines to understand the direction of the current trend.
**Inputs:**
- **Length:** Number of bars to consider for calculating the highest high and lowest low (default: 200).
- **Smooth Length:** Period for the simple moving average to smooth the high and low bands (default: 10).
- **Volume Threshold Multiplier:** Multiplier for the average volume to detect significant buying or selling pressure (default: 1.5).
This indicator is suitable for all timeframes and can be used in conjunction with other technical analysis tools to enhance your trading strategy.
Stop Hunts [MK]Liquidity rests above/below previous highs and lows because these are the areas where traders are most likely to leave their orders/stop losses. The market can tap into this liquidity source by going beyond the previous highs and lows, this liquidity can then be used to reverse the market in the opposite direction.
As traders we may want to know if price will continue beyond previous highs and lows, or reverse the market. If price looks to be reversing after tapping into liquidity, this can be a good area to enter a trade. The same area can be used as a take profit level also.
The indicator identifies previous high/lows in two ways:
1. previous high/lows using 'PIVOT POINTS'. Pivots are easy to spot and are obvious within a price trend. Also called 'higher highs", "lower lows" etc. The number of candles required to form the pivot point can be adjusted in the script settings.
see below example of pivot point and stop hunt:
www.tradingview.com
see how price reversed upwards after stop hunt on pivot point above.
2. previous candle high/lows. A previous candles high and low are also good areas of liquidity.
see below example of previous candle stop hunt:
see how price reversed upwards after stop hunt on previous candle low above.
Personally, I use the pivot point stop hunts on lower timeframes and previous candle stop hunts on higher timeframes. However users can adjust on which timeframes to show the indicator depending on their own trading style.
As ever all items within 'settings' are customizable.
The indicator is by no means a 'trading strategy' and users should be fully aware of the stop hunt concept and have conducted extensive back-testing before using with 'live' accounts.
The indicator may also serve as a 'teaching aid' to new students and as a reminder to more experienced traders.